/**
 * com.mbmed.nurse.vaq1.service.Vaq1Service.java
 */
package com.mbmed.doctor.vaq1.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.mbmed.doctor.vaq1.bo.Vaq1Bo;
import com.mbmed.doctor.vaq1.mapper.Vaq1;
import com.mbmed.doctor.vaq1.mapper.Vaq1Bean;

/**
 * @file  Vaq1Service.java
 * @author jiangcangpeng
 * @version 0.1
 * @todo	Vaq1服务操作接口
 * Copyright(C), 2013-2014
 *		 Shenzhen Coordinates Software Development Co., Ltd.
 * History
 *   	1. Date: 2014-09-29 04:12:58
 *      	Author: jiangcangpeng
 *      	Modification: this file was created
 *   	2. ...
 */
@Path("/vaq1")
@Component
public class Vaq1Service {
	
	private static Logger logger = Logger.getLogger(Vaq1.class);
	
	@Autowired
	private Vaq1Bo vaq1Bo;
	
	@Context
	Request request;

	
	/**
	 * 查找所有数据库记录
     * @return type : List 返回查询操作所有符合条件的记录的VO对象集合，操作失败返回null
     */
	@GET
	@Path("/getAll")
	@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
    public List<Vaq1> getAll() throws Exception{
        List<Vaq1> list = new ArrayList<Vaq1>();
        return vaq1Bo.getAll();        
    }
	
	/**
	 * 查找所有数据库记录
     * @return type : List 返回查询操作所有符合条件的记录的VO对象集合，操作失败返回null
     */
	@GET
	@Path("/getVag1List")
	@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
    public List<Vaq1Bean> getListByVaa01(@QueryParam("vaa01") java.lang.String vaa01,
    		@QueryParam("vaa07") java.lang.String vaa07, @QueryParam("vap01") java.lang.String vap01) throws Exception{
        List<Vaq1Bean> list = new ArrayList<Vaq1Bean>();
        Map<String,Object> paramMap = new HashMap<String, Object>();
        paramMap.put("vaa01", vaa01);
        paramMap.put("vaa07", vaa07);
        paramMap.put("vap01", vap01);
        list = vaq1Bo.getByVaa01(paramMap);
        return list;
    }
	
    /**
     * 查找符合条件的所有数据库记录
     * @param id 与数据库中主键对应的值
     * @return type :  返回查询操作所有符合条件的记录的VO对象，操作失败返回null
     * @throws Exception
     */
	@GET
	@Path("{id}")
	@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
    public Vaq1 getVaq1(@PathParam("id") String id) throws Exception{
    	Vaq1 vaq1 = null;
    	return vaq1Bo.get(id);        
    }
	
	@GET
	@Path("/getVaq01")
	@Produces({MediaType.TEXT_HTML})
    public String getVaq01(
    		@QueryParam("vaa01") String vaa01,
    		@QueryParam("cad01") String cad01
    		) throws Exception{
    	return vaq1Bo.getVaq01(vaa01,cad01);       
    }
    /**
     * 向数据库中插入一条记录
     * @param vo 与数据库中记录对应的值对象
     * @return type : 返回插入操作是否成功
     * @throws Exception
     */
	@POST
	@Produces(MediaType.APPLICATION_JSON)
	@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
	public Vaq1 saveVaq1(
			@FormParam("vaq01") java.lang.Integer vaq01,
			@FormParam("rownr") java.lang.Integer rownr,
			@FormParam("acf01") java.lang.Integer acf01,
			@FormParam("vaa01") java.lang.Integer vaa01,
			@FormParam("vaa07") java.lang.Integer vaa07,
			@FormParam("vap01") java.lang.Integer vap01,
			@FormParam("bck01") java.lang.Integer bck01,
			@FormParam("cab01") java.lang.Integer cab01,
			@FormParam("cad01") java.lang.Integer cad01,
			@FormParam("cad04") java.lang.String cad04,
			@FormParam("bce01") java.lang.Integer bce01,
			@FormParam("bce03a") java.lang.String bce03a,
			@FormParam("vaq13") java.util.Date vaq13,
			@FormParam("vaq14") java.util.Date vaq14,
			@FormParam("bce03b") java.lang.String bce03b,
			@FormParam("vaq16") java.util.Date vaq16,
			@FormParam("vaq17") java.lang.Byte vaq17,
			@FormParam("bce03c") java.lang.String bce03c,
			@FormParam("vaq19") java.util.Date vaq19,
			@FormParam("vaq20") java.lang.Integer vaq20,
			@FormParam("vaq21") java.lang.Byte vaq21,
			@FormParam("vaq01a") java.lang.Integer vaq01a,
			@FormParam("vaq23") java.lang.Integer vaq23,
			@FormParam("pnrcp") java.lang.Integer pnrcp,
			@FormParam("bck01b") java.lang.Integer bck01b,
			@FormParam("vaq26") java.lang.String vaq26,
			@FormParam("vaq27") java.lang.Byte vaq27,
			@FormParam("cbf01") java.lang.Integer cbf01,
			@FormParam("vaq29") java.math.BigDecimal vaq29,
			@FormParam("vaq30") java.lang.Byte vaq30,
			@FormParam("vaq31") java.lang.String vaq31,
			@FormParam("vaq32") java.util.Date vaq32,
			@FormParam("qad01") java.lang.Integer qad01,
			@FormParam("vaq33") java.lang.String vaq33,
			@FormParam("vaq34") java.lang.String vaq34,
			@FormParam("vaq35") java.util.Date vaq35,
			@Context HttpServletResponse servletResponse
	) throws Exception {
		Vaq1 vaq1 = new Vaq1();
		vaq1.setVaq01(vaq01);
		vaq1.setRownr(rownr);
		vaq1.setAcf01(acf01);
		vaq1.setVaa01(vaa01);
		vaq1.setVaa07(vaa07);
		vaq1.setVap01(vap01);
		vaq1.setBck01(bck01);
		vaq1.setCab01(cab01);
		vaq1.setCad01(cad01);
		vaq1.setCad04(cad04);
		vaq1.setBce01(bce01);
		vaq1.setBce03a(bce03a);
		vaq1.setVaq13(vaq13);
		vaq1.setVaq14(vaq14);
		vaq1.setBce03b(bce03b);
		vaq1.setVaq16(vaq16);
		vaq1.setVaq17(vaq17);
		vaq1.setBce03c(bce03c);
		vaq1.setVaq19(vaq19);
		vaq1.setVaq20(vaq20);
		vaq1.setVaq21(vaq21);
		vaq1.setVaq01a(vaq01a);
		vaq1.setVaq23(vaq23);
		vaq1.setPnrcp(pnrcp);
		vaq1.setBck01b(bck01b);
		vaq1.setVaq26(vaq26);
		vaq1.setVaq27(vaq27);
		vaq1.setCbf01(cbf01);
		vaq1.setVaq29(vaq29);
		vaq1.setVaq30(vaq30);
		vaq1.setVaq31(vaq31);
		vaq1.setVaq32(vaq32);
		vaq1.setQad01(qad01);
		vaq1.setVaq33(vaq33);
		vaq1.setVaq34(vaq34);
		vaq1.setVaq35(vaq35);

		return vaq1 = vaq1Bo.save(vaq1);

	}
	/**
     * 删除数据库中与传入的值对象对应的记录
     * @param vo 与数据库中记录对应的值对象
     * @return type : boolean 返回删除操作是否成功
     * @throws Exception
     */
	@DELETE
	@Path("{id}")
	public boolean removeVaq1(@PathParam("id") String id) throws Exception{
		if(id == null) return false;
    	return vaq1Bo.remove(id);

	}
	
}
